package com.zzy.algorithm.array;

/**
 * LeetCode - 283 ： 移动零
 * 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
 *
 * 请注意 ，必须在不复制数组的情况下原地对数组进行操作。
 */
public class Q5_MoveZero {

    public static void main(String[] args) {
        int[] nums = new int[]{6,0,1,0,3,12};
        moveZero(nums);
        for (int x : nums){
            System.out.println(x);
        }
    }

    private static void moveZero(int[] nums){
        int slow = 0;
        int fast = 0;
        while(fast < nums.length){
            if(nums[fast] != 0){
                nums[slow++] = nums[fast];
            }
            fast++;
        }
        while(slow < nums.length){
            nums[slow++] = 0;
        }
    }





















//
//    private static void moveZero(int[] nums) {
//        int slow = 0;
//        int fast = 0;
//        while(fast < nums.length){
//            if(nums[fast] != 0){
//                nums[slow++] = nums[fast];
//            }
//            fast++;
//        }
//        for(int i = slow; i < nums.length;i++){
//            nums[i] = 0;
//        }
//    }

}
